Fix validation error when pausing broadcast during live streaming#20
Draft
Fix validation error when pausing broadcast during live streaming#20
Conversation
- Store session ID locally to prevent race conditions during async operations - Prevents null session_id being passed to incrementHostSessionStats when broadcast is paused/stopped Co-authored-by: acdc-digital <127530566+acdc-digital@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Pause/ Stop Broadcast Validation Error
Fix validation error when pausing broadcast during live streaming
Sep 7, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When a broadcast is paused or stopped while live streaming is active, the application throws a Convex validation error:
This error occurs due to a race condition in the
HostAgentService. When thestop()method is called, it asynchronously ends the session and setsthis.currentSessionId = null. However, ongoing async operations likesaveNarrationToDatabase()may still be running and attempt to callincrementHostSessionStatswith the now-null session ID.Root Cause
The issue happens in this sequence:
stop()method callsendSession()which setsthis.currentSessionId = nullsaveNarrationToDatabase()is still executing async operationsincrementHostSessionStatscall, it passesnullinstead of a valid session IDSolution
Store the session ID in a local variable at the beginning of the
saveNarrationToDatabasemethod to prevent race conditions. This ensures all database operations within the method use the same valid session ID that was active when the method started.Changes made:
const sessionId = this.currentSessionIdafter the initial null checksessionIdinstead ofthis.currentSessionIdThe fix is minimal and surgical, addressing only the specific race condition without affecting any other parts of the system.
Fixes #19.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.